﻿'TODO: Führen Sie diese Schritte aus, um das (XML-)Element auf der Multifunktionsleiste zu aktivieren:

'1: Kopieren Sie folgenden Codeblock in die Klasse "ThisAddin", "ThisWorkbook" oder "ThisDocument".

'Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
'    Return New Ribbon1()
'End Function

'2. Erstellen Sie Rückrufmethoden im Abschnitt "Multifunktionsleisten-Rückrufe" dieser Klasse, um Benutzeraktionen
'   zu behandeln, z.B. das Klicken auf eine Schaltfläche. Hinweis: Wenn Sie diese Multifunktionsleiste aus dem
'   Multifunktionsleisten-Designer exportiert haben, verschieben Sie den Code aus den Ereignishandlern
'   in die Rückrufmethoden, und ändern Sie den Code für die Verwendung mit dem Programmmodell für die Multifunktionsleisten-Erweiterung (RibbonX).

'3. Weisen Sie den Steuerelementtags in der Multifunktionsleisten-XML-Datei Attribute zu, um die entsprechenden Rückrufmethoden im Code anzugeben.

'Weitere Informationen erhalten Sie in der Multifunktionsleisten-XML-Dokumentation in der Hilfe zu Visual Studio-Tools für Office.

<Runtime.InteropServices.ComVisible(True)> _
    Public Class Ribbon1
    Implements Office.IRibbonExtensibility

    Private ribbon As Office.IRibbonUI

    Public Sub New()
    End Sub

    Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
        Return GetResourceText("WriterTest.Ribbon1.xml")
    End Function

#Region "Multifunktionsleisten-Rückrufe"
    'Erstellen Sie hier Rückrufmethoden. Weitere Informationen über das Hinzufügen von Rückrufmethoden erhalten Sie, indem Sie das Multifunktionsleisten-XML-Element im Projektmappen-Explorer markieren und dann F1 drücken.
    Public Sub Ribbon_Load(ByVal ribbonUI As Office.IRibbonUI)
        Me.ribbon = ribbonUI
    End Sub

    Public Sub OnButtonPress(ByVal control As Office.IRibbonControl)
        System.Windows.Forms.MessageBox.Show("Button clicked !")
        Dim Writer1 As New Writer
        Writer1.writeHtml()

    End Sub


#End Region

#Region "Helfer"

    Private Shared Function GetResourceText(ByVal resourceName As String) As String
        Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
        Dim resourceNames() As String = asm.GetManifestResourceNames()
        For i As Integer = 0 To resourceNames.Length - 1
            If String.Compare(resourceName, resourceNames(i), StringComparison.OrdinalIgnoreCase) = 0 Then
                Using resourceReader As IO.StreamReader = New IO.StreamReader(asm.GetManifestResourceStream(resourceNames(i)))
                    If resourceReader IsNot Nothing Then
                        Return resourceReader.ReadToEnd()
                    End If
                End Using
            End If
        Next
        Return Nothing
    End Function

#End Region

End Class
